widget: Use gtk_widget_get_native() in get_surface_allocation()
authorTimm Bäder <mail@baedert.org>
Thu, 31 Dec 2020 07:02:10 +0000 (08:02 +0100)
committerTimm Bäder <mail@baedert.org>
Sun, 3 Jan 2021 10:01:29 +0000 (11:01 +0100)
gtk/gtkwidget.c

index a61bf419e101938b30e7c405bc5642c17690b2fd..2ab136a486ad302f5644af72e1c6a50f085ce647 100644 (file)
@@ -3425,21 +3425,18 @@ void
 gtk_widget_get_surface_allocation (GtkWidget     *widget,
                                   GtkAllocation *allocation)
 {
-  GtkWidget *parent;
+  GtkNative *native;
   graphene_rect_t bounds;
   double nx, ny;
 
-  /* Don't consider the parent == widget case here. */
-  parent = _gtk_widget_get_parent (widget);
-  while (parent && !GTK_IS_NATIVE (parent))
-    parent = _gtk_widget_get_parent (parent);
+  native = gtk_widget_get_native (widget);
 
-  g_assert (GTK_IS_WINDOW (parent) || GTK_IS_POPOVER (parent));
-  gtk_native_get_surface_transform (GTK_NATIVE (parent), &nx, &ny);
+  g_assert (GTK_IS_WINDOW (native) || GTK_IS_POPOVER (native));
+  gtk_native_get_surface_transform (native, &nx, &ny);
 
-  if (gtk_widget_compute_bounds (widget, parent, &bounds))
+  if (gtk_widget_compute_bounds (widget, GTK_WIDGET (native), &bounds))
     {
-      *allocation = (GtkAllocation){
+      *allocation = (GtkAllocation) {
         floorf (bounds.origin.x) + nx,
         floorf (bounds.origin.y) + ny,
         ceilf (bounds.size.width),